package main

import "fmt"

func main() {
	/*
		arr1 := [5]int{1, 2, 3, 4, 5}
		fmt.Println(arr1[0])

		for i := 0; i < len(arr1); i++ {
			fmt.Println(arr1[i])
		}
		//Golang quick print

		arr2 := [3][3]int{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}
		for a, b := range arr1 {
			fmt.Println(a, "value :", b)
		}
		for a, b := range arr2 {
			fmt.Println(a, b)
		}


	*/

	/*
		arr1 := make([]int, 5, 10)
		fmt.Println(arr1)
		fmt.Println(len(arr1))
		fmt.Println(cap(arr1))

	*/

	/*
		arr1 := make([]int, 0, 3)
		fmt.Printf("%p\n", arr1)
		fmt.Println(len(arr1), cap(arr1))

		arr1 = append(arr1, 1, 2, 3, 4, 5, 6)
		fmt.Printf("%p\n", arr1)
		fmt.Println(len(arr1), cap(arr1))

		arr1 = append(arr1, 1, 2, 3)
		fmt.Printf("%p\n", arr1)
		fmt.Println(len(arr1), cap(arr1))

		arr1 = append(arr1, 1, 2, 3, 4, 5, 6)
		fmt.Printf("%p\n", arr1)
		fmt.Println(len(arr1), cap(arr1))

		arr1 = append(arr1, 1, 2, 3, 4, 5, 61, 2, 3, 4, 5, 6)
		fmt.Printf("%p\n", arr1)
		fmt.Println(len(arr1), cap(arr1))

	*/

	/*
		fmt.Println(arr1)
		fmt.Println(len(arr1))
		fmt.Println(cap(arr1))

		arr1 = append(arr1, 1, 2, 3, 4, 5, 6)
		fmt.Println(len(arr1))
		fmt.Println(cap(arr1))

		arr2 := make([]int, 5, 10)
		arr2[0] = 100
		arr2 = append(arr2, 5, 6, 7, 8)
		fmt.Println(arr2)

		arr1 = append(arr1, arr2...)
		fmt.Println(arr1)
	*/

	/*
		for i := range arr1 {
			fmt.Println(arr1[i])
		}

	*/
	var arr1 [4]int
	arr1 = [4]int{1, 2, 3, 4}
	arr2 := arr1[0:2]
	fmt.Println(arr2)

}
